#ifndef STUSQL_H
#define STUSQL_H

#pragma execution_character_set("utf-8")  // 确保中文字符正常解析

#include <QObject>
#include <QSqlDatabase>
#include <QtGlobal>  // 添加此行，定义 quint8/quint16/quint32

struct StuInfo
{
    int id;
    QString name;
    quint8 age;       // 依赖 QtGlobal
    quint16 grade;    // 依赖 QtGlobal
    quint16 uiclass;  // 依赖 QtGlobal
    quint32 studentid;// 依赖 QtGlobal
    QString phone;
    QString wechat;
};


struct UserInfo
{
    QString username, password;
    QString aut; // 权限
};

class stuSql : public QObject
{
    Q_OBJECT
public:
    static stuSql *ptrstuSql;
    static stuSql *getintance()
    {
        if(nullptr == ptrstuSql)
        {
            ptrstuSql = new stuSql;
        }
        return ptrstuSql;
    }

    explicit stuSql(QObject *parent = nullptr);
    void init();

    // 查询所有学生数量
    quint32 getStuCnt();

    // 查询第几页学生数据, 页数从 0 开始
    QList<StuInfo> getPageStu(quint32 page, quint32 uiCnt);

    // 增加删除学生
    bool addStu(StuInfo info);
    bool delStu(int id);

    // 清空学生表
    bool cleaStuTable();

    // 修改学生信息
    bool UpdateStuInfo(StuInfo info);

    // 查询所有用户
    QList<UserInfo> getAllUser();

    // 查询用户名是否存在
    bool isExit(QString strUser);

    // 更新用户信息
    bool updateuser(UserInfo info);

    // 添加单个用户
    bool AddUser(UserInfo info);

    // 删除单个用户
    bool delUser(QString strUserName);

signals:

private:
    QSqlDatabase m_db;
};

#endif // STUSQL_H




















